home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs54.d81 / trans12c.lbr / TRANS-03.INC < prev    next >
Text File  |  2009-10-10  |  2KB  |  79 lines

  1.  
  2. (* module 3 *)
  3.  
  4.  
  5.  
  6. procedure SearchFileCPM( FileName: Str20; var Error: integer; First: boolean );
  7. var
  8.   I,J: integer;
  9. begin
  10. BDos(SetDMAF,addr(CPM_Buf));
  11. ConvertName(FileName,CPM_FCB.Name,CPM_FCB.Extention);
  12. CPM_FCB.DriveCode:= CPM_Drive + 1;
  13. CPM_FCB.Extent:= 0;
  14. CPM_FCB.CR:= 0;
  15. if First then
  16.   I:= BDos(SearchF,addr(CPM_FCB))
  17. else
  18.   I:= BDos(SearchN,addr(CPM_FCB));
  19. if (I = $FF) then
  20.   Error:= EODirectory
  21. else
  22.   begin
  23.   Error:= 0;
  24.   I:= (((I and 3) * SizeCPM_FCB) + 1);
  25.   for J:= 0 to (NameSize + TypeSize)  do
  26.     mem[addr( CPM_FCB ) + J]:= mem[ addr( CPM_Buf[I]) + J];
  27.   end;
  28. end;
  29.  
  30.  
  31.  
  32. procedure DirCPM;
  33. var
  34.   ErrorCode,
  35.   Count,
  36.   I,N:      integer;
  37.   FileName: Str20;
  38. begin
  39. BiosSelect(CPM_Drive, First);
  40. Count:= 0;
  41. ClrScr;
  42. writeln;
  43. write('Dir Mask: ');
  44. readln(FileName);
  45. writeln;
  46. SearchFileCPM(FileName,ErrorCode,First);
  47.  
  48. if (ErrorCode = EODirectory) then
  49.   begin
  50.   write('No File, ');
  51.   Continue;
  52.   end
  53. else
  54.   begin
  55.   repeat
  56.     if ((Count mod 4) = 0) then
  57.       writeln
  58.     else
  59.       write('  :  ');
  60.     write(CPM_DriveCh,':');
  61.     for I:= 1 to NameSize do
  62.       write(CPM_FCB.Name[I]);
  63.     write('.');
  64.     for I:= 1 to TypeSize do
  65.       write(CPM_FCB.Extention[I]);
  66.     Count:= Count + 1;
  67.     SearchFileCPM(FileName,ErrorCode,Next);
  68.     until (ErrorCode = EODirectory) or Break;
  69.   writeln;
  70.   writeln;
  71.   writeln('File Count: ',Count);
  72.   Continue;
  73.   end;
  74. end;
  75.  
  76.  
  77.  
  78. (* end module 3 *)
  79.